import Vue from 'vue'
import VueRouter from 'vue-router'


Vue.use(VueRouter); //如果使用模块化机制编程，导入Vue和VueRouter，要调用 Vue.use(VueRouter)

// 1. 定义 (路由) 组件。
// 可以从其他文件 import 进来
import main from '../views/Main.vue'
import home from '../views/Home.vue'
import user from '../views/User.vue'
import page1 from 'views/Page1.vue'
import page2 from 'views/Page2.vue'
import mall from 'views/Mall.vue'
import Cookie from "js-cookie";
import Inspection from '../views/Inspection.vue'

//路由懒加载 当路由被访问的时候才加载对应组件，这样就会更加高效
const login = () => import('views/Login.vue')

// 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器，
// 或者，只是一个组件配置对象。

const routes = [
    {
        path: '/',
        component: main,
        redirect: 'home',
        children: [
            { path: 'user', name: 'user', component: user },//子路由嵌套
            { path: 'mall', name: 'mall', component: mall },
            { path: 'page2', name: 'page2', component: page2 },
            { path: 'page1', name: 'page1', component: page1 },
            { path: 'home', name: 'home', component: home },
            { path: 'Inspection', name: 'Inspection', component: Inspection },
        ]
    },
    {
        path: '/login',
        component: login,
        name: 'login'
    }

]
// 3. 创建 router 实例，然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({
    routes, // (缩写) 相当于 routes: routes
    mode: 'history'
})
//全局前置守卫
router.beforeEach((to, from, next) => {
    // ...
    console.log(1);
    const token = Cookie.get('token');
    if (!token && to.name != 'login') {//token不存在，而且当前路由不是登录页面
        next({ name: 'login' });
    } else if (token && to.name === 'login') {
        next({ name: 'home' });
    } else {
        next();
    }
})

//导出
// 4. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由，
// 从而让整个应用都有路由功能
export default router